//该文件专门用于创建整个应用的路由器
import VueRouter from "vue-router";
import About from '../pages/About'
import Home from '../pages/Home'
import Message from '../pages/Message'
import News from '../pages/News'
import Detail from '../pages/Detail'
//创建一个路由器
export default new VueRouter({
    routes:[
        {
            path:'/about',
            component:About
        },
        {
            path:'/home',
            component:Home,
            children:[
                {
                    path:'message',
                    component:Message,
                    children:[
                        {
                            name:'detail', //起个名字，之后组件使用跳转时 ：to="{name:'detail'}" 就相当于/demo/message/detail了
                           
                            //1.params的path使用
                            //path:'detail/:id/:title',
                            //2.query的path使用
                            path:'detail',

                            component:Detail,
                            //props的第一种写法，值为对象，该对象中的所以key-value都会以props的形式传给Detail组件
                            //props:{a:1,b:'hello'}, //不常用了解即可

                            //第二种写法，值为布尔值，若布尔值为真，就会把该路由组件收到所有params参数，以props的形式传给Detail组件
                            //省了组件那边用$route.params.id这样了,缺点只有params这样使用，query不可以
                            // props:true

                            //props的第三种写法，值为函数,这样query和params传递的参数都可以在组件中用props接收使用了
                            // props($route){
                            //     return {
                            //         id:$route.params.id,
                            //         title:$route.params.title
                            //     }
                            // }

                            //query写法验证
                            props($route){
                                return {
                                    id:$route.query.id,
                                    title:$route.query.title
                                }
                            }
                        }
                    ]
                },
                {
                    path:'news',
                    component:News,
                }
            ]
        }
    ]
})